from rest_framework.response import Response           #基础的响应类
from rest_framework.views import exception_handler     #基础的异常处理类
from django.db import DatabaseError                    #数据库异常
import logging                                         #日志记录

log=logging.getLogger("django")

#在产生结果的地方，记录日志

#自定义异常处理器  exc是异常类，context是上下文，哪个视图报错，获取视图的
def custom_exception_handler(exc, context):
    #在response里面接受默认的异常类，捕获到异常返回
    response = exception_handler(exc, context)
    #如果异常处理不了  符合为空和数据库异常
    if response is  None and isinstance(exc, DatabaseError):
        log.error('当前服务器数据库出错：',exc)               #当前是记录到日志文件里面
        return Response({"message": "服务器内部错误"},status=500)            #返回给前端

    return response